﻿using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;
using OnlineStore.Bll;
using OnlineStore.Dal;

namespace OnlineStore.Gui
{
    public partial class ManagerOrder : System.Web.UI.Page
    {
        DalOrder _dalOrder = new DalOrder();
        //List<tbOrder> listOrder = new List<tbOrder>();
        int Page_Order = -1;
        bizOrder OrderItem = new bizOrder();
        protected void Page_Load(object sender, EventArgs e)
        {
            /*Giỏ hàng bên phải*/
            ListCartRight.DataSource = (List<bizCart>)Session["cart"];
            ListCartRight.DataBind();
            lb_Sum.Text = String.Format("{0:0,0 VNĐ}", bizCart.SumAllList((List<bizCart>)Session["cart"]));
            lb_Sum_product.Text = String.Format("{0:0,0 VNĐ}", bizCart.PriceOrder(bizCart.SumAllList((List<bizCart>)Session["cart"])));
            /**/
            /*Title login*/
            if (Session["user"] != null)
            {
                HL_tab_login.NavigateUrl = "/gui/Account.aspx";
                HL_tab_login.Text = ((tbCustomer)Session["user"]).Username;
                HL_tab_Logout.Visible = true;
            }
            
            /* Load Orderlist */
            if (Page_Order < 0)
                LoadOrderlist();
            /**/
            /* load Chi tiet */
            if (!IsPostBack)
                LoadOrderDetail();
            /**/
        }
        private void LoadOrderDetail()
        {
            string id = Request.QueryString.Get("id");
            if (id != null)
            {
                    GV_ListOrderDetail.DataSource = _dalOrder.LoadOrderDetail(id);
                    GV_ListOrderDetail.DataBind();
                    if (OrderItem.getOrder(id))
                    {
                        lb_title.Visible = false;
                        lb_HoaDon.Text = OrderItem.OrderID.ToString();
                        lb_Name.Text = OrderItem.Cus_Name;
                        lb_Tel.Text = OrderItem.Tel;
                        lb_Total.Text = String.Format("{0:0,0 VNĐ}", OrderItem.Total);
                        boxStatus.SelectedValue = OrderItem.Status;
                        lb_VoucherID.Text = OrderItem.Voucher;
                        tb_Address.Text = OrderItem.Address;
                        Delivery_Date.SelectedDate = OrderItem.Delivery_Date;
                    }
                    else
                    {
                        lb_title.Visible = true;
                        hl_Submit.Visible = false;
                    }                
            }
            else
            {
                lb_title.Visible = true;
                hl_Submit.Visible = false;
            }
            
        }
        private void LoadOrderlist()
        {
            if (Page_Order < 0)
            {
                Page_Order = 0;
                GV_ListOrder.DataSource = _dalOrder.LoadAllOrder();
            }
            GV_ListOrder.PageIndex = Page_Order;
            GV_ListOrder.DataBind();
        }
        protected void onSubmit(object sender, EventArgs e)
        {
            lb_warning.Visible = true;
            int k = OrderItem.Update(Request.QueryString.Get("id"),tb_Address.Text, boxStatus.SelectedValue, Delivery_Date.SelectedDate);
            if (k == 0)
            {
                lb_warning.Text = "Cập nhật thành công";
                Page_Order = -1;
            }
            else
            {
                lb_warning.Text = "Sẩy ra lỗi trong cập nhật";
                if (k == 1)
                    lb_warning.Text = "Chưa nhập địa chỉ giao hàng";
                if (k == 2)
                    lb_warning.Text = "Vui lòng chọn ngày giao,";
                if (k == 3)
                    lb_warning.Text = "Bạn không thể lựa chọn chức năng này";
            }   
        }

        protected void onCancel(object sender, EventArgs e)
        {
            Response.Redirect("/Gui/Administrator.aspx");
        }

        protected void GV_ListOrder_PageIndexChanging(object sender, GridViewPageEventArgs e)
        {
            Page_Order = e.NewPageIndex;
            LoadOrderlist();
        }
    }
}